<?php

class QaController extends Controller {

	public function actionAsk() {
		$this->pageTitle = 'Задать вопрос';

		$model = new Ask();
		if (isset(Yii::app()->session['ask']))
			$model->attributes = Yii::app()->session['ask'];
		if (isset($_POST['Ask'])) {
			if (Yii::app()->user->isGuest)
				$this->redirect('/qa/ask');
			$model->attributes = $_POST['Ask'];
			if ($model->save()) {
				Yii::app()->user->setFlash('success', ['Благодарим вас за обращение к нам.', 'Мы ответим вам как можно скорее.']);
				$this->refresh();
			}
		}
		$this->render('ask', array('model' => $model));
	}

	public function actionGetData($type, $parentID = 0, $ajax = false, $ask = false) {
		if ($parentID == 0)
			return array();
		$types = array('brand', 'model');
		if (!in_array($type, $types))
			throw new CHttpException(400, 'Invalid request. Please do not repeat this request again.');
		$c = new CDbCriteria();
		$c->select = '"pageTitle", "pageUrl", "pageId"';
		$c->compare('"pageParent"', $parentID);
		$c->compare('"pageType"', $type);
		$models = Page::model()->findAll($c);
		$array = $ask ? CHtml::listData($models, 'pageId', 'pageTitle') : CHtml::listData($models, 'pageUrl', 'pageTitle');
		if ($ajax) {
			echo CHtml::tag
					('option', array('value' => 0), CHtml::encode('--'), true);
			foreach ($models as $value => $subcategory) {
				echo CHtml::tag
						('option', array('value' => $subcategory['pageId']), CHtml::encode($subcategory['pageTitle']), true);
			}
		}
		return $array;
	}

	public function actionIndex() {

		$data = parent::$pageData;
		$faq = explode('/', Yii::app()->request->pathInfo);
		if (count($faq) == 1) {
			$this->pageTitle = 'Вопросы и ответы — Моби03';
			Yii::app()->clientScript->registerMetaTag('В этом разделе можете задать интересующий Вас вопрос и получить на него ответ эксперта. Тому, кто даст полезный ответ предоставляется скидка 10%.', 'description');
			Yii::app()->clientScript->registerMetaTag('вопросы и ответы по ремонту цифровой техники', 'keywords');
		} elseif (count($faq) == 2) {
			$this->pageTitle = 'Вопросы и ответы по ремонту ' . str_replace('Ремонт ', '', $data['pageTitle']) . ' — Моби03';
			Yii::app()->clientScript->registerMetaTag('Ремонт ' . str_replace('Ремонт ', '', $data['pageTitle']) . ' - типичные неисправности и пути их решения. Здесь Вы можете задать свой вопрос и получить на него ответ эксперта.', 'description');
			Yii::app()->clientScript->registerMetaTag('неисправности ' . str_replace('Ремонт ', '', $data['pageTitle']) . ' ', 'keywords');
		} elseif (count($faq) == 3) {
			$this->pageTitle = 'Неисправности ' . str_replace('Ремонт ', '', $data['_parents']['category']['pageTitle']) . ' ' . $data['pageTitle'] . ' (' . (empty($data['pageRussianName']) ? $data['pageTitle'] : $data['pageRussianName']) . '): вопросы и ответы по ремонту — Моби03';
			Yii::app()->clientScript->registerMetaTag('Вопросы и ответы по ремонту ' . str_replace('Ремонт ', '', $data['_parents']['category']['pageTitle']) . ' ' . $data['pageTitle'] . ' (' . (empty($data['pageRussianName']) ? $data['pageTitle'] : $data['pageRussianName']) . ') - типичные неисправности и пути их решения. Здесь Вы можете задать свой вопрос и получить на него подробный ответ эксперта.', 'description');
			Yii::app()->clientScript->registerMetaTag('обсуждаем вопросы, связанные с ремонтом ' . str_replace('Ремонт ', '', $data['_parents']['category']['pageTitle']) . ' ' . $data['pageTitle'] . ' (' . (empty($data['pageRussianName']) ? $data['pageTitle'] : $data['pageRussianName']) . ')', 'keywords');
		} elseif (count($faq) == 4) {
			$this->pageTitle = 'Неисправности ' . $data['_parents']['brand']['pageTitle'] . ' ' . $data['pageTitle'] . ': вопросы и ответы по ремонту — Моби03';
			Yii::app()->clientScript->registerMetaTag('Неисправности ' . $data['_parents']['brand']['pageTitle'] . ' ' . $data['pageTitle'] . ' и пути их решения. Задай свой вопрос и получи ответ эксперта.', 'description');
			Yii::app()->clientScript->registerMetaTag('обсуждаем неисправности ' . $data['_parents']['brand']['pageTitle'] . ' ' . $data['pageTitle'], 'keywords');
		}


//		$sql = "SELECT * FROM {{pages}} WHERE pageType = 'category'";
//		$brands = Yii::app()->db->getCommandBuilder()->createSqlCommand($sql)->queryAll();
		$sqlP = '';
		if (isset($data['pageFaqType']) && $data['pageFaqType'] == 'category') {
			$sqlP = ' AND "faqCategoryId" = ' . (int) $data['pageId'];
		}
		if (isset($data['pageFaqType']) && $data['pageFaqType'] == 'brand') {
			$sqlP = ' AND "faqBrandId" = ' . (int) $data['pageId'];
			$brandID = (int) $data['pageId'];
		}
		if (isset($data['pageFaqType']) && $data['pageFaqType'] == 'model') {
			$sqlP = ' AND "faqModelId" = ' . (int) $data['pageId'];
		}

		$sql = "SELECT f.\"faqUrl\", f.\"faqTitle\", f.\"faqModelId\", p.\"pageTitle\", f.\"faqContent\", f.\"faqQid\", f.\"faqMostUseful\", \"faqId\" FROM mb_faq f, mb_pages p WHERE f.\"faqModelId\" = p.\"pageId\" AND \"faqGlobalType\" = 'qa' AND \"faqType\" = 'question' AND \"faqStatus\" = 1{$sqlP}";
		$questions = Yii::app()->db->getCommandBuilder()->createSqlCommand($sql)->queryAll();

		$sql = "SELECT f.\"faqUrl\", f.\"faqTitle\", f.\"faqModelId\", f.\"faqContent\", f.\"faqQid\", f.\"faqMostUseful\", \"faqId\" FROM mb_faq f WHERE \"faqType\" = 'answer' AND \"faqStatus\" = 1";
		$answers = Yii::app()->db->getCommandBuilder()->createSqlCommand($sql)->queryAll();

		$solveds = array();
		$unsolveds = array();
		$others = array();
		$sCounter = $uCounter = $oCounter = 0;
		foreach ($questions as $key => $question) {
			foreach ($answers as $k => $v) {
				if ($v['faqQid'] == $question['faqId'] && $v['faqMostUseful'] == 1) {
					if ($sCounter < 30) {
						$solveds[$question['faqId']] = $question;
						$sCounter++;
					}
				} elseif ($v['faqQid'] == $question['faqId'] && $v['faqMostUseful'] == 0) {
					if ($uCounter < 30) {
						$unsolveds[$question['faqId']] = $question;
						$uCounter++;
					}
				}
			}
		}
		$marge = $solveds + $unsolveds;
		foreach ($questions as $key => $value) {
			if (!array_key_exists($value['faqId'], $marge)) {
				if ($oCounter < 30) {
					$others[$question['faqId']] = $question;
					$oCounter++;
				}
			}
		}
		$this->render('index', array('solveds' => $solveds, 'unsolveds' => $unsolveds, 'others' => $others));
	}

	public function actionBrand() {
		$data = parent::$pageData;
		$this->pageTitle = $data['pageTitle'];
		$sql = "SELECT * FROM {{pages}} WHERE \"pageType\" = 'model' AND \"pageParent\" = '{$data['pageId']}'";
		$models = Yii::app()->db->getCommandBuilder()->createSqlCommand($sql)->queryAll();
		$this->render('index', array('models' => $models));
	}

	public function actionModel() {
		$data = parent::$pageData;
		$this->pageTitle = $data['pageTitle'];
		$this->render('index', array('model' => $data));
	}

	public function actionView() {
		$data = parent::$pageData;
		$this->pageTitle = $data['_parents']['brand']['pageTitle'] . ' ' . $data['_parents']['model']['pageTitle'] . ': ' . $data['pageTitle'] . ' — Моби03';
		Yii::app()->clientScript->registerMetaTag('Я владелец ' . $data['_parents']['brand']['pageTitle'] . ' ' . $data['_parents']['model']['pageTitle'] . '. ' . $data['pageTitle'] . ' ', 'description');
		Yii::app()->clientScript->registerMetaTag($data['pageTitle'], 'keywords');

		$sql = "SELECT * FROM {{faq}} WHERE \"faqType\" = 'answer' AND \"faqQid\" = '{$data['faqId']}' AND \"faqStatus\" = 1 ORDER BY \"faqMostUseful\" DESC";
		$answers = Yii::app()->db->getCommandBuilder()->createSqlCommand($sql)->queryAll();
		$faqStatus = 'unsolved';
		foreach ($answers as $key => $value) {
			if ($value['faqMostUseful'] == 1)
				$faqStatus = 'solved';
		}
		$mod = Page::model()->findByPk($data['faqModelId']);
		$model = new Ask('model');
		if (isset($_POST['Ask'])) {
			$model->attributes = $_POST['Ask'];
			$model->faqTitle = 'Вопрос от: ' . $model->faqUserName;
			$model->faqModelId = $data['faqModelId'];
			$model->faqGlobalType = 'qa';
			$model->faqType = 'answer';
			$model->faqQid = $data['faqId'];
			if ($model->save()) {
				Yii::app()->user->setFlash('success', ['Благодарим вас за обращение к нам.', 'Мы ответим вам как можно скорее.']);
				$this->refresh();
			}
		}
		$this->render('view', array('mod' => $data, 'answers' => $answers, 'faqStatus' => $faqStatus, 'model' => $model, 'data' => $mod));
	}

}
